package dao;

import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.LinkedList;
import java.util.List;

import negocio.Empresa;

import entity.EmpresaBD;


public class EmpresaDAO extends DAO{
		
	public EmpresaDAO(){}
	
	public List<EmpresaBD> getEmpresas(){
		List<EmpresaBD> empresas = new LinkedList<EmpresaBD>();
		
		ResultSet rs = super.getObjectAll("empresa");
		try {
			
			while(rs.next()){
				EmpresaBD empresaBD = null;
				empresaBD = new EmpresaBD();
				empresaBD.setCuit(rs.getString("cuit"));
				empresaBD.setRazon_social(rs.getString("razon_social"));
				empresaBD.setDireccion_comercial(rs.getString("direccion_comercial"));
				empresaBD.setDomicilio(rs.getString("domicilio"));
				empresaBD.setEmail(rs.getString("email"));
				empresaBD.setFax(rs.getString("fax"));
				empresaBD.setFecha_alta(rs.getDate("fecha_alta"));
				empresaBD.setFecha_inhabilitacion(rs.getDate("fecha_inhabilitacion"));
				empresaBD.setId_empresa(rs.getInt("id_empresa"));
				empresaBD.setLocalidad(new LocalidadDAO().getLocalidadById(rs.getInt("id_localidad")));
				empresaBD.setObservaciones(rs.getString("observaciones"));
				empresaBD.setPagina_web(rs.getString("pagina_web"));
				empresaBD.setPais(new PaisDAO().getPaisById(rs.getInt("id_pais")));
				empresaBD.setTipo_empresa(rs.getString("tipo_empresa"));
				empresas.add(empresaBD);
			}
		} catch (Exception e) {
			// TODO: handle exception
		}
		
		return empresas;
	}

	public EmpresaBD getEmpresaById(int idEmpresa) {
		ResultSet rs = super.getObjectById("empresa", "id_empresa", idEmpresa);
		EmpresaBD empresaBD = null;
		try {
			if(rs.next()){
				empresaBD = new EmpresaBD();
				empresaBD.setCuit(rs.getString("cuit"));
				empresaBD.setRazon_social(rs.getString("razon_social"));
				empresaBD.setDireccion_comercial(rs.getString("direccion_comercial"));
				empresaBD.setDomicilio(rs.getString("domicilio"));
				empresaBD.setEmail(rs.getString("email"));
				empresaBD.setFax(rs.getString("fax"));
				empresaBD.setFecha_alta(rs.getDate("fecha_alta"));
				empresaBD.setFecha_inhabilitacion(rs.getDate("fecha_inhabilitacion"));
				empresaBD.setId_empresa(idEmpresa);
				empresaBD.setLocalidad(new LocalidadDAO().getLocalidadById(rs.getInt("id_localidad")));
				empresaBD.setObservaciones(rs.getString("observaciones"));
				empresaBD.setPagina_web(rs.getString("pagina_web"));
				empresaBD.setPais(new PaisDAO().getPaisById(rs.getInt("id_pais")));
				empresaBD.setTipo_empresa(rs.getString("tipo_empresa"));
			}
		} catch (SQLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		return empresaBD;
	}

	public EmpresaBD getEmpresaByName(String nombre) {
		// TODO Auto-generated method stub
		ResultSet rs = super.getObjectByName("empresa", "razon_social", nombre);
		EmpresaBD empresaBD = null;
		try {
			if(rs.next()){
				empresaBD = new EmpresaBD();
				empresaBD.setCuit(rs.getString("cuit"));
				empresaBD.setRazon_social(rs.getString("razon_social"));
				empresaBD.setDireccion_comercial(rs.getString("direccion_comercial"));
				empresaBD.setDomicilio(rs.getString("domicilio"));
				empresaBD.setEmail(rs.getString("email"));
				empresaBD.setFax(rs.getString("fax"));
				empresaBD.setFecha_alta(rs.getDate("fecha_alta"));
				empresaBD.setFecha_inhabilitacion(rs.getDate("fecha_inhabilitacion"));
				empresaBD.setId_empresa(rs.getInt("id_empresa"));
				empresaBD.setLocalidad(new LocalidadDAO().getLocalidadById(rs.getInt("id_localidad")));
				empresaBD.setObservaciones(rs.getString("observaciones"));
				empresaBD.setPagina_web(rs.getString("pagina_web"));
				empresaBD.setPais(new PaisDAO().getPaisById(rs.getInt("id_pais")));
				empresaBD.setTipo_empresa(rs.getString("tipo_empresa"));
			}
		} catch (SQLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		return empresaBD;
	}

}
